package com.run.guifeng.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.run.guifeng.model.entity.Carousel;
import com.run.guifeng.model.vo.IndexCarouselVO;

import java.util.List;

/**
 * 轮播图服务
 *
 * @author sky
 */
public interface CarouselService {

    /**
     * 后台分页
     * 所有轮播图，需要分页
     * 一次返回一页，controller传入页面第几页和每页长度
     * 为保证页面数据稳定，size值应当不变
     *
     * @return 以一页包装数据
     */
    List<Carousel> getCarouselPage();

    /**
     * 新增轮播图
     * 传入轮播图数据由controller包装传入
     *
     * @param carousel 轮播图
     * @return 操作结果信息
     */
    String saveCarousel(Carousel carousel);

    /**
     * 修改轮播图
     * 传入新的轮播图数据更新数据库
     * 内部判断该轮播图是否存在
     *
     * @param carousel 轮播图
     * @return 操作结果信息
     */
    String updateCarousel(Carousel carousel);

    /**
     * 通过轮播图Id获取轮播图信息
     *
     * @param id 轮播图id
     * @return 查询出的轮播图，可能为空
     */
    Carousel getCarouselById(Integer id);

    /**
     * 批量删除轮播图
     *
     * @param ids 批量id
     * @return
     */
    String deleteBatch(Integer[] ids);

    /**
     * 返回固定数量的轮播图对象(首页调用)
     * 首页轮播图应当有数量限制，不应该将数据库中的全部轮播图取出，按照排序值选择最优先的轮播图
     *
     * @param number 轮播图数量
     * @return 列表
     */
    List<IndexCarouselVO> getCarouselsForIndex(int number);
}
